Python中的生成器和迭代器 您所在的位置:网站首页 python list 迭代器 Python中的生成器和迭代器

Python中的生成器和迭代器

2023-06-06 06:11| 来源: 网络整理| 查看: 265

Python中的生成器和迭代器

Python中的生成器是一种特殊类型的函数,其返回一个可迭代对象,可以用于迭代输出一系列数据。与普通函数不同,生成器在执行时保存现场,等到下次调用时继续从保存的状态开始执行,可以实现懒加载,只有在需要时才会生成新的值,这样可以大大节省内存空间。

生成器的定义方式也很特殊,使用关键字yield来返回值,这个关键字可以让函数暂停执行并保存现场,下次调用时继续从保存的状态开始执行。

下面是一个简单的生成斐波那契数列的示例:

def fib(max): a, b = 0, 1 while a < max: yield a a, b = b, a+b f = fib(10) for i in f: print(i)

运行结果为:

0 1 1 2 3 5 8

在本例中,我们定义了一个名为fib的生成器,它接受一个参数max,生成斐波那契数列中小于max的数字。我们使用while循环来计算斐波那契数列,并在每次计算出一个数字后使用yield返回该数字。注意到函数中没有return语句,而是使用了yield,这是生成器的特性之一。

在主程序中,我们使用for循环遍历生成器对象f,并打印其中的每个值。

除了生成器,Python中还有一种迭代器,也可以用于迭代输出一系列数据。迭代器是一种实现了__iter__和__next__方法的对象,__iter__返回迭代器对象本身,而__next__返回容器中的下一个元素,如果已经没有元素可以返回,



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有